Advances of computer-based information technologies have led to increasing cross communications and integrations amongst software applications, databases or data warehouses, computers, enterprise applications, and enterprise computer systems. Such communications and integrations may be implemented over various communication channels and links, including computer networks such as the Word Wide Web (the Web) or other communication mechanisms available on the Internet, and other computer communication networks.
Computer-based information technologies may be used for automation of various business processes. In general, various business operations of a business process may be defined by computer program instructions and some or all of such business operations may be automatically executed by one or more computers. The execution of certain business processes may require retrieval of data or information from other resources such as databases, and collaboration with one or more other computer business processes. Technologies and tools are needed for integrating and orchestrating a wide range of resources, trading partners and service providers to complete such a business transaction.
Web Services have been developed to facilitate communications and integrations of different resources, applications and services using various Web technologies. Web Services can be used to define uniform interfaces based on, for example, the Extensible Markup Language (XML) which is a subset of the Standard Generalized Markup Language (SGML) promulgated by the International Standards Organization (ISO). The XML provides a cross-platform approach to encoding of data and data format for both data and metadata and thus can significantly simplify the exchange of information among computer applications, computer systems, and enterprises. Web Services provide a framework for different applications to share business process logic and applications in addition to sharing of data. Web Services include a set of open standards that facilitate program-to-program interactions by specifying methods to describe, publish, discover and bind application interfaces. Web Services enable common means for discovery and invocation of services.
A Web Service may use an XML-based language, e.g., the Web Services Description Language (WSDL), to define an interface for a Web application to be available on the Web. The WSDL provides provisions that describe the location of the Web Service and the operations or methods provided by the Web Service in the XML format. A Web Service further uses a transport protocol, e.g., the Simple Object Access Protocol (SOAP), to define Web Service messages (SOAP messages) in an XML-based message format for communicating and interoperating with other Web Services.
XML-based Web Services may be implemented in different programming languages and can run on different computer operating systems. This is because an XML document uses plain ASCII text that can be understood and processed by different computer operating systems in different programming languages. In addition, a client accessing a Web Service is generally not required to have priori knowledge about the server for the Web Service. Thus, software may communicate and interact with other software via Web Services. This feature of Web Services allows for a Web Service user to access and integrate business processes, data, and functionalities provided by others via Web Services without re-creating the processes, data and functionalities. In this regard, Web Services can lead to potential new business opportunities that utilize various Web resources. Conventional Web Services may be registered, published, and discovered through, for example, a Universal Description and Discovery Integration (UDDI) Registry. The UDDI allows a user to learn about the functions of each registered Web Service and remotely invoke a desired Web service.
In particular, Web Services provide an integration platform for implementing and integrating business processes in a distributed computing environment, e.g., executing various operations or processing tasks of a single business process in different software applications on different computers. Web Services can be used to achieve universal interoperability between applications by using Web standards and to allow flexible integration of heterogeneous systems in a variety of domains including business-to-consumer, business-to-business and enterprise application integration. As an example, a business process can be carried out within an enterprise or across multiple enterprises using the Web Service Platform.
Various XML-based business execution languages have been developed or are emerging to provide a uniform and standard mechanism for defining, executing, and sharing business processes via Web Services. The Business Process Execution Language for Web Services (BPEL4WS or BPEL) is an example of such a language. More specifically, BPEL provides the formal specification of business processes and business interaction protocols and leverages existing Web Services defined in WSDL.